#include <iostream>

// val 的阶乘是 val*(val - 1)*(val - 2)...*((val-(val-1))*1)
int fact(int val)
{
    int ret = 1; // 局部变量，用于保存计算结果
    while(val > 1)
    {
        ret *= val--; // 把 ret 和 val 的乘积赋给 ret，然后将 val 减 1
    }
    return ret; // 返回结果
}

int main()
{
    int j = fact(5); // j等于120，即 fact(5)的结果
    std::cout << "5! is " << j << std::endl;
    return 0;
}